	var oBtn = document.querySelector("button");
	var timer = null; //标记定时器
	var speed = 0; //设置一个速度
	var flag = true; //判断条件

	window.onscroll = function () {
	  var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
	  if (scrollTop >= 500) { //超过或等于临界值，来显示按钮元素
	    oBtn.style.display = "block";
	  }
	  if (!flag) { //实现在回到顶端过程中，如果onscroll事件被触发，则要清除定时器，让它停下来
	    clearInterval(timer);
	  }
	  flag = false; //当flag为false时停止计时器
	}

	oBtn.onclick = function () { //给按钮添加事件驱动函数
	  timer = setInterval(slowDown, 80);
	}

	function slowDown() {
	  var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; //兼容性，获取到scrollTop值
	  speed = scrollTop / 5; //让速度匀速变化
	  document.documentElement.scrollTop = document.body.scrollTop = scrollTop - speed; //形成一个缓冲速度
	  if (scrollTop < 500) { //小于临界值，隐藏按钮元素
	    oBtn.style.display = "none";
	  }
	  if (scrollTop == 0) { //达到顶部的时候，清除定时器(不然不能再次滚动)
	    clearInterval(timer);
	  }
	  flag = true;
	}